home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
taropyon
/
he386
/
compiler.doc
< prev
next >
Wrap
Text File
|
1994-11-16
|
33KB
|
847 lines
**************************************************************************
HE386 ver.3.01 コンパイラ仕様書
**************************************************************************
**************************************************************************
☆ オプションパラメータ
**************************************************************************
書式
┌─────────────────────────────────┐
│ he386p [<オプション>] <入力ファイル名[.mml]> [<出力ファイル名>] │
└─────────────────────────────────┘
<オプション>
-scnMsg 入力行を表示
-mppMsg プリプロセッサ出力の表示
-dumpMsg 演奏データのダンプ表示
-cnsMsgIgn 画面への表示禁止
-errOut <ファイル名> エラーメッセージをファイルに出力
-msgOut <ファイル名> メッセージをファイルに出力
-cciPath <パス名> CCI プログラム格納パス名の指定
-codeSize <n> CCI コードサイズ(単位Kバイト)
-heepSize <n> CCI ヒープサイズ(単位Kバイト)
**************************************************************************
☆ コントロール行
**************************************************************************
■シーケンス設定系
●4分音符の分解能
.division <n>
<n> 分解能 24~9600
●テンポ
.tempo <n>
演奏を開始するときのテンポ
●拍子
.signature <n>/<d>
演奏を開始するときの拍子
●タイトル
.title <text>
●コピーライト
.copyright <text>
■シーケンス制御系
●小節
.meas [<d/n>]
<d/n> 次の小節の拍子
各パートのクロックはこの命令によって揃えられる
●シーケンス終了
.end
■トラック設定系
●トラック設定
.track <track no> port:<port> ch:<ch> macro:<name>
<track no> トラック番号 1~32767
<port> トラックデータ出力ポート A~H
<ch> MIDIチャンネル 1~16
<name> トラックマクロ名
トラック番号0にはトラックマクロ名"CTRL"のトラックがデフォルトで
設定されている。CTRLトラックはテンポの指定にだけ使うこと。
トラック出力ポートは現バージョンでは意味がない。
●コントロールバリューベースの設定
.ccvbase <no> <cc>:<base>
<no> トラック番号
<cc> コントロールナンバ 0~127
<base) ベース値 0~127
各コントロールチェンジの基準値を決める。
通常,各コントロールチェンジの値は0~127 の範囲で指定するが,
基準値を10とした場合は -10~+117(0-10 ~ 127-10)の範囲で指定す
る。
パンポット(コントロールチェンジ0AH )の基準値はデフォルトで64
に設定されている。よってパンポットは-64~63 の範囲で指定する。
●テーブルの設定
.table <track no> <typ> <n1>[-<n2>]:<val>
<typ> ch MIDIチャンネル
note 音程
vel ベロシティ
pitch ピッチベンド
prog プログラムチェンジ
caf チャンネルアフタータッチ
paf ポリフォニックアフタータッチ
cc コントロールチェンジ
ccv:<cc> コントロールパリュー
MIDIチャンネルや音程,ピッチベンド等の値をテーブルに従って変換
します。
たとえば次のように設定した場合,
.table 1 ch 1:16
トラック1のMIDIチャンネル1はテーブルに従い,MIDIチャンネル16に
変換される。
■パート,MML設定系
●パターン登録
.pattern <name>(<n>) <MML>
【使用例】
.pattern A_1(2) l8 !1 $($CHH())8
.pattern A_1(3) r4 !2 $SNR(4) r4 $SNR(4)
.pattern A_1(4) $BSD(4) r4 $BSD(4) r4
RYM(1) = *(A_1) *(A_1) /* パターンの展開 */
●MML コマンド登録
.mmlcmd <char> <command>
<char> H,I,J,K, M, O,P,Q, S,T,U,V,W,X,Y,Z
<command>
tempo テンポ
octave オクターブ
ch MIDIチャンネル
delay ディレイ
keyshift キーシフト
vel ベロシティ
offvel オフベロシティ
step ステップタイム
gateper ゲートタイムの比率
gate ゲートタイム
prog プログラムチェンジ
pitch ピッチベンド
caf チャンネルアフタータッチ
cafpres チャンネルアフタータッチ・プレッシャ
cafdelay チャンネルアフタータッチ・ディレイ
paf ポリフォニックアフタータッチ
pafpres ポリフォニックアフタータッチ・プレッシャ
pafdelay ポリフォニックアフタータッチ・ディレイ
cc コントロールチェンジ
pan パンポット
ccv:<cc> コントロールチェンジ
**************************************************************************
☆ プリプロサッサ仕様
**************************************************************************
■マクロ
●マクロ定義
書式1:
#define <マクロ名> <内容>
書式2:
#$<マクロ名> <内容>
【解説】
書式1では既に登録されているマクロを再定義しようとした場合にはエラー
となります。書式2ではエラーにはならずに新しく定義されます。
●テーブルマクロ定義
#table <テーブルマクロ名> <a0>,<a1>,<a2>....
●マクロ定義解除
#undef <マクロ名>
●マクロ展開
$<マクロ名>(<パラメータ>)
マクロ内容の「$1~$9」はパラメータに置換される
【使用例】
#define VOL @CC(7,$1)
#table VOL_TBL 10,20,30,40,50,60,70,80,90,100,110,120
MELODY(1) = $VOL( $VOL_TBL(9) )
展開後は「MELODY(1) = @CC(7,100)」となる。
■組み込みマクロ
● $00~$FF 16進数
対応する10進数に変換されます。
● slide スライド
$slide( note, cmd, n, tie, func, start, end [,start pos] )
note … 音程+音長
cmd … コマンド
n … 分割数(全体の音長はnote×n になる)
tie … タイ指定(&を指定するとタイになる)
func … 変化関数 x : 1次関数
x^2 : 2次関数
sqr : 平方根
start … 変化開始値
end … 変化終了値
start pos … 実際に最初に使われる値
【解説】
cmd で指定するコマンドの値をstart からend まで,指定した変化関数func
によって連続的に変化させるMML を作りだします。
<start pos> を指定した場合は,start pos から値が変化します。この指定
は,指定した変化関数の途中の値から変化を開始したいときに使います。
変化関数は以下のような特性があります。
1次関数(直線) 2次関数(曲線) 平方根(曲線)
(値) (値) (値)
↑ ↑ * ↑
│ * │ * │ **
│ * │ * │ **
│ * │ * │ *
│ * │ * │ *
│ * │ * │ *
│ * │ ** │*
│* │** │*
└────────→ └────────→ └────────→
(時間) (時間) (時間)
1次関数は,start からend まで直線的に変化します。
2次関数は,最初は緩やかで,後になるほど急激に変化します。
平方根は2次関数の逆で,最初は急激に変化し,後になるほど緩やかに変化
します。
【使用例】
/* u コマンドの値を-8192から0まで64段階で変化させる
GUITAR(1) = $slide(a64,u,64,&,x^2,-8192,0)
● wave ウェーブ
$wave( note, cmd, n, tie, func, base, amp, dt [,ang] )
note … 音程+音長
cmd … 値を変化させるコマンド
n … 分割数(全体の音長はnote×n になる)
tie … タイにする場合は(&)を指定する
func … 変化関数 sin : 正弦波(~~)
tri : 三角波(/\/\)
saw : ノコギリ波(/|/|/|)
先頭に「! 」を付けると波形の上下が逆になる
(例:!tri)
base … 中心の値
amp … 振幅
dt … 1回に変化する角度
ang … 変化開始角度
【解説】
cmd で指定するコマンドの値を,波のように周期的に変化させる。
dt は通常,10,15,30,45といった値を指定する。
【例】
/* u コマンドの値を0を中心に600 の幅で変化させる
GUITAR(1) = $wave(a64,u,64,&,sin,0,600,30)
● swave スライディングウェーブ
$swave( note, cmd, len, Tn, wn, tie, slide, sp, ep,
wave, amp, ang [, speed ofs [, amp ofs] [,sub]] )
note … 音程($slide,$waveと違い音長は指定しない)
cmd … 値を変化させるコマンド
len … 全体の音長
Tn … ウェーブ分解数(1回のウェーブを何分割するか決
めるパラメータ)
wn … ウェーブ回数(全体ではTn×wn個のコマンドが生成
される)
tie … タイ指定
func … スライド関数 x : 1次関数
x^2 : 2次関数
sqr : 平方根
sp … スライド変化開始値
ep … スライド変化最終値
wave … ウェーブ関数 sin : 正弦波(~~)
tri : 三角波(/\/\)
saw : ノコギリ波(/|/|/|)
先頭に「! 」を付けると波形の上下が逆になる
(例:!tri)
amp … ウェーブの振幅
ang … ウェーブ開始角度
speed ofs … ウェーブスピード変化オフセット
先頭が「% 」だと変化率(パーセンテージ )指定となる。
amp ofs … 振幅変化オフセット,先頭が「% 」だと変化率(パ
ーセンテージ )指定となる。
sub … サブコマンド(1ウェーブ毎に挿入されるコマンド
)
【解説】
スライド($slide )とウェーブ($wave)を合成した結果が得られる。
【使用例】
GUIAR(1) = $swave( a, u, :3840, 8, 4, &, x^2, 0, 3200, sin, 120, 0)
● chord コード
$chord(<chord>,<spin> [,<step>, <gate>[,<tie>]])
┌──────────┬────────────────────┐
│コード表記 │コード名 │
├──────────┼────────────────────┤
│A │A │
│A6 │Aシックス │
│AMaj7 │Aメジャー・セブンス │
│AMaj9 │Aメジャー・ナインス │
│A69 │Aシックス・ナインス │
│Aaug, A +5 │Aオーグメント │
│A7 │Aセブンス │
│A9 │Aナインス │
│A11 │Aイレブンス │
│A13 │Aサーティーンス │
│A7+5, Aaug7 │Aオーグメント・セブンス │
│A9+5, A9aug │Aオーグメント・ナインス │
│A7+9 │Aセブン・シャープド・ナインス │
│A +11 │Aシャープド・イレブンス │
│Adim7 │Aディミニッシュド・セブンス │
│Adimj7 │Aディミニッシュド・メジャー・セブンス │
│Adim9 │Aディミニッシュド・ナインス │
│Asus4 │Aサスペンディッド・フォー │
│ │ │
│Am │Aマイナー │
│Am6 │Aマイナー・シックス │
│AmMaj7 │Aマイナー・メジャー・セブンス │
│AmMaj9 │Aマイナー・メジャー・ナインス │
│Am69 │Aマイナー・シックス・ナインス │
│Aalt, A -5 │Aアルタード │
│Am7 │Aマイナー・セブンス │
│Am9 │Aマイナー・ナインス │
│Am11 │Aマイナー・イレブンス │
│Am13 │Aマイナー・サーティーンス │
│A7-5, Aalt7 │Aアルタード・セブンス │
│A9-5, A9alt │Aアルタード・ナインス │
│A7-9 │Aセブン・フラッテッド・ナインス │
│A13(+11), A13(#11)│Aサーティーンス・シャープド・イレブンス│
│Am7-5 │Aアルタード・マイナー・セブンス │
│Am9-5 │Aアルタード・マイナー・セブンス │
│Am11-5 │Aアルタード・マイナー・イレブンス │
│A7sus4 │Aセブンス・サスペンディッド・フォー │
└──────────┴────────────────────┘
$chord(C,0,<step>,<gate>,<tie>)
⇒ C:0,<gate><tie> E:0,<gate><tie> G:0,<gate><tie> R<step>
■リピート
$(<MML>)<n>
**************************************************************************
☆ MML 仕様
**************************************************************************
数値指定が<ex.n>となっている箇所は,次のような指定方法ができます。
<n> 直接数値指定
'<n> 相対指定
<n>% 比率指定
'<n>% 相対比率指定
* <min>..<max> ランダム指定
*'<min>..<max> 相対ランダム指定
* <min>..<max>% 比率ランダム指定
*'<min>..<max>% 相対比率ランダム指定
【使用例】
127 …127 を指定(直接数値指定)
'10 …現在より10増加した値(相対指定)
80% …現在の80パーセントの値(比率指定)
'10% …現在より10パーセント増加した値(相対比率指定)
*50..60 …50から60までのランダムな値(ランダム指定)
*'-10..10 …現在値に-10 から10までのランダムな値を加えた値(相対
ランダム指定)
*'5..10% …現在値に 5から10パーセントまでのランダムな値を加えた
値(相対比率ランダム指定)
■休符
R 休符
■ノートオン/ノートオフ
A~G ノートオン
A[+/-][[:]<音長>] [[,<ゲートタイム>]] ] [(<option>)][&]
A:480 ステップタイム指定
<option>
caf:<ex.n> チャンネルアフタータッチ
paf:<ex.n> ポリフォニックアフタータッチ
【使用例】
a4 /* 音長:4分音符 */
a:960 /* 音長:960クロック */
a2,1960 /* 音長:4分音符,ゲートタイム:1960クロック */
a16.& a32 /* 符点16音符+32分音符 */
■連符
{<MML>}[[:]<音長>]/<n>
<n> 音長の分割数
【使用例】
{cde}2/3
■パート系コマンド(パート毎に設定可能)
● ? セッタ
各種パラメータの設定を行う
【形式1】 セッタコマンドの設定
書式: ?[<n>](<コマンド>[,<コマンド>...])
<n> セッタバッファ番号(1~32767)
番号を省略した場合は,設定内容は直ちに
実行される。
<コマンド>
tempo:<ex.n> テンポ
octave:<ex.n> オクターブ
ch:<n> MIDIチャンネル
delay:<ex.n> ディレイ
vel:<ex.n> ベロシティ
offvel:<ex.n> オフベロシティ
step:<ex.n> ステップタイム
gateper:<ex.n> ゲートタイムの比率
gate:<ex.n> ゲートタイム
prog:<ex.n> プログラムチェンジ
pitch:<ex.n> ピッチベンド
caf:<ex.n> チャンネルアフタータッチ
cafpres:<ex.n> チャンネルアフタータッチ・プレッシャ
cafdelay:<ex.n> チャンネルアフタータッチ・ディレイ
paf:<ex.n> ポリフォニックアフタータッチ
pafpres:<ex.n> ポリフォニックアフタータッチ・プレッシャ
pafdelay:<ex.n> ポリフォニックアフタータッチ・ディレイ
cc:<cc>/<ex.val> コントロールチェンジ
【形式2】 セッタコマンドの実行
書式: ?<n>
【解説】
パート系コマンドによる各種設定を行います。コマンドはカンマで区切
ることで複数指定できる。
形式1により指定のセッタバッファ番号にコマンドを設定し,形式2に
よってコマンドを実行する。
形式1で,バッタバッファ番号を省略した場合は,直ちにコマンドを実
行する。
【使用例】
?10(vel:40) /* バッファ番号10にベロシティ10と設定 */
?10 /* バッファ番号10の設定を実行する */
?(vel:64) /* ベロシティを64に */
● ?# オフセッタ
ノートオンやセッタで使われる各種パラメータの値にオフセットを指定
する。
【形式1】 オフセッタコマンドの設定
書式: ?#<n>(<コマンド>,[<コマンド>...])
<n> オフセッタバッファ番号(1~32767)
番号を省略した場合は,設定内容は直ちに
実行される。
<コマンド>
tempo:<ex.n> テンポ
octave:<ex.n> オクターブ
delay:<ex.n> ディレイ
vel:<ex.n> ベロシティ
offvel:<ex.n> オフベロシティ
step:<ex.n> ステップタイム
gateper:<ex.n> ゲートタイムの比率
gate:<ex.n> ゲートタイム
prog:<ex.n> プログラムチェンジ
pitch:<ex.n> ピッチベンド
caf:<ex.n> チャンネルアフタータッチ
cafpres:<ex.n> チャンネルアフタータッチ・プレッシャ
cafdelay:<ex.n> チャンネルアフタータッチ・ディレイ
paf:<ex.n> ポリフォニックアフタータッチ
pafpres:<ex.n> ポリフォニックアフタータッチ・プレッシャ
pafdelay:<ex.n> ポリフォニックアフタータッチ・ディレイ
cc:<cc>/<ex.val> コントロールチェンジ
【形式2】 オフセッタコマンドの実行
書式: ?#<n>
● ! ピンセッタ
直後のノートオンに対してのみ設定が有効となる。
【形式1】 ピンセッタの設定
書式: !<n>(<コマンド>[,<コマンド>...])
<n> ピンセッタバッファ番号(1~32767)
<コマンド>
tempo:<ex.n> テンポ
octave:<ex.n> オクターブ
ch:<n> MIDIチャンネル
delay:<ex.n> ディレイ
vel:<ex.n> ベロシティ
offvel:<ex.n> オフベロシティ
step:<ex.n> ステップタイム
gateper:<ex.n> ゲートタイムの比率
gate:<ex.n> ゲートタイム
prog:<ex.n> プログラムチェンジ
pitch:<ex.n> ピッチベンド
caf:<ex.n> チャンネルアフタータッチ
cafpres:<ex.n> チャンネルアフタータッチ・プレッシャ
cafdelay:<ex.n> チャンネルアフタータッチ・ディレイ
paf:<ex.n> ポリフォニックアフタータッチ
pafpres:<ex.n> ポリフォニックアフタータッチ・プレッシャ
pafdelay:<ex.n> ポリフォニックアフタータッチ・ディレイ
cc:<cc>/<ex.val> コントロールチェンジ
【形式2】 ピンセッタを有効に
書式: !<n>
【使用例】
!1(vel:127,gate:120) /* 設定バッファ1に設定 */
!1 /* 設定バッファ1のピンポンイト設定を有効にする */
※ セッタ,オフセッタ,ピンセッタのコマンドは以下の省略形が使える。
------- ------------
省略形 コマンド
------- ------------
t tempo
o octave
d delay
v vel
ov offvel
s step
gp gateper
g gate
pg prog
p pitch
cd cafdelay
pd pafdelay
------- ------------
■プログラムマブルコマンド
ノートオン(A~G,N),休符(R ),音長(L )以外のアルファベットは,コ
ントロール行の.mmlcmd または拡張パートコマンド「^」を使いユーザーが任意
に設定できる。
コントロール行の.mmlcmd を使った場合は,.mmlcmd以降で使われるすべてのパ
ートで設定が有効になるが,拡張パートコマンド「^」 を使った場合は指定のパ
ートのみ設定が有効になる(通常の設定は.mmlcmd を使い,一時的に設定を変更し
たい場合は「^ 」を使うといった使い分けができる)。
登録できるコマンドには以下のようなものがある。
----------- --------------------------------------- ----------------
識別子 コマンド 書式
----------- --------------------------------------- ----------------
tempo テンポ [#]<ex.n>
ch MIDIチャンネル <n>
delay ディレイ [#]<ex.n>
clock クロックセット <beat>:<clock>
keyshift キーシフト [#]<ex.n>
octave オクターブ [#]<ex.n>
vel ベロシティ [#]<ex.n>
offvel オフベロシティ [#]<ex.n>
step ステップタイム [#]<ex.n>
gateper ゲートタイムの比率 [#]<ex.n>
gate ゲートタイム [#]<ex.n>
prog プログラムチェンジ [#]<ex.n>
pitch ピッチベンド [#]<ex.n>
caf チャンネルアフタータッチ [#]<ex.n>
cafpres チャンネルアフタータッチプレッシャ [#]<ex.n>
cafdelay チャンネルアフタータッチディレイ [#]<ex.n>
paf ポリフォニックアフタータッチ [#]<ex.n>
pafpres ポリフォニックアフタータッチプレッシャ [#]<ex.n>
pafdelay ポリフォニックアフタータッチディレイ [#]<ex.n>
cc 任意のコントロールチェンジ <cc>/[#]<ex.n>
ccv:<cc> 設定されたコントロールチェンジ [#]<ex.n>
----------- --------------------------------------- ----------------
「# 」を付けるとオフセッタの指定となる
デフォルトでは以下のように登録されている。
------- ----------- --------------------------------------------
文字 識別子 内容
------- ----------- --------------------------------------------
H ch MIDIチャンネル
I 未設定
J 未設定
K keyshift キーシフト
M ccv:$01 モジュレーション
O octave オクターブ
P ccv:$0A パンポット
Q gateper ゲートタイムの比率(パーセンテージ)
S clock クロックセット(小節の先頭からのクロック)
T tempo テンポ
U pitch ピッチベンド
V vel ベロシティ
W ccv:$07 ボリューム
X ccv:$0B エクスプレッション
Y 未設定
Z 未設定
------- ----------- --------------------------------------------
■拡張パートコマンド
● MMLコマンドの定義
^(mmlcmd,<cha>,<command>)
【使用例】
/* 「J」にコントロールチェンジ5B(16進数)を設定する */
PART1(1) = ^(mmlcmd,J,ccv:$5B)
● ナチュラル指定
^(natrural,<alphabet>)
【使用例】
PART(1) = ^(natural,cdefgab)
● シャープ指定
^(sharp,<alphabet>)
【使用例】
/* F をシャープに指定 */
PART(1) =~^(sharp,f)
● フラット指定
^(flat,<alphabet>)
【使用例】
/* E, Bをフラットに指定 */
PART(1) = ^(flat,eb)
■トラック系
● トラック系コマンド一覧
ディレイ以外の,パート系コマンド(セッタ,オフセッタ,ピンセッタ)
の影響はうけない
@TEMPO(<n>) テンポ
@CC(<cc>,<val>) コントロールチェンジ
@PROG(<n>) プログラムチェンジ
@PITCH(<n>) ピッチベンド
@NOTEON(<note>,<vel>) ノートオン
@NOTEOFF(<note>,<vel>) ノートオフ
@PAF(<note>,<pres>) ポリフォニックアフタータッチ
@CAF(<pres>) チャンネルアフタータッチ
@EXCL(<data>,...) システムエクスクルーシブメッセージ
@DELAY(<n>) トラックディレイ
@FILTER() フィルタ
@NOTEASN() ノートアサイン
@PROGASN() プログラムアサイン
@INSTNAME(<name>) インストゥルメントネーム
@OPT() オプティマイザ制御
@END() トラックデータの終了
● @FILTER フィルタ
トラック単位に,各種フィルタを設定する。
@FILTER (<cmd>, <par>, ...)
<cmd> tempo テンポ
delay ディレイ
note 音程
vel ベロシティ
pitch ピッチベンド
prog プログラムチェンジ
caf チャンネルアフタータッチ
paf ポリフォニックアフタータッチ
cc:<cc> コントロールチェンジ
<par> off:<n> オフセット
ratio:<n> 比率
min:<n> 最小値
max:<n> 最大値
bit:<n> 有効ビット数
rnd:<n>/<n> ランダム
【使用例】
PART(1) = @FILTER(pitch, off:-30)
● @NOTEASN ノートアサイン
音程によって変化させるパラメータを指定する。
@NOTEASN(<cmd>,<mode>,<par>, [<par>...])
<cmd> vel ベロシティ
pitch ピッチベンド
prog プログラムチェンジ
cc:<cc> コントロールチェンジ
<mode> abs 絶対値指定
off オフセット指定
<par> <note>:<n>
【使用例】
PART(1) = @NOTEASN(cc:10, off, C3:-14, C+3:-13, D3:-12)
● @PROGASN プログラムアサイン
プログラムチェンジによって変化させるパラメータを指定する。
@PROGASN(<cmd>,<mode>,<par>)
<cmd> vel ベロシティ
pitch ピッチベンド
cc:<cc> コントロールチェンジ
<mode> abs 絶対値指定
off オフセット指定
<par> <prog>:<n>
【使用例】
PART(1) = @PROGASN(vel, off, 34:8)
● @OPT オプティマイザ制御
オプティマイザの制御を行う。
形式1 各パラメータを未設定状態にする
@OPT(CLEAR)
形式2 各パラメータのオプティマイズの有効/無効を設定する
@OPT(<typ>,<flag> [,<flag>...])
<typ> tempo テンポ
note ノートオン・ノートオフ
prog プログラムチェンジ
pitch ピッチベンド
caf チャンネルアフタータッチ
paf ポリフォニックアフタータッチ
cc:<n> コントロールチェンジ
<flag> on オプティマイズ有効
off オプティマイズ無効
note ノートオフ・オフを未設定状態にする
prog プログラムチェンジを未設定状態にする
pitch ピッチベンドを未設定状態にする
pres アフタータッチを未設定状態にする
cc コントロールチェンジを未設定状態にする
※ ノートオン・オフのオプティマイズは常に無効
デフォルト設定状態
┌────┬──┬──┬──┬──┬──┬──┬──────────┐
│typ │on/ │note│prog│pi- │pres│cc │remarks │
│ │off │ │ │ tch│ │ │ │
├────┼──┼──┼──┼──┼──┼──┼──────────┤
│tempo │on │ │ │ │ │ │ │
│note │off │ │ │ │ ○ │ │ │
│pitch │on │ │ │ │ │ │ │
│prog │on │ │ │ ○ │ ○ │ ○ │ │
│caf │on │ │ │ │ │ │ │
│cc:$00 │on │ │ ○ │ │ │ │Bank select │
│cc:$01 │on │ │ │ │ │ │Muduration depth │
│cc:$07 │on │ │ │ │ │ │Volume │
│cc:$0A │on │ │ │ │ │ │Panpot │
│cc:$0B │on │ │ │ │ │ │Expression │
│cc:$5B │on │ │ │ │ │ │Effect1 depth │
│cc:$5D │on │ │ │ │ │ │Effect3 depth │
│cc:$78 │off │ ○ │ │ │ │ │All sound off │
│cc:$79 │off │ ○ │ │ ○ │ ○ │ ○ │Reset all controller│
│cc:$7B │off │ ○ │ │ ○ │ ○ │ ○ │All note off │
│cc:$7C │off │ ○ │ │ ○ │ ○ │ ○ │Omni off │
│cc:$7D │off │ ○ │ │ ○ │ ○ │ ○ │Omni on │
│cc:$7E │off │ ○ │ │ ○ │ ○ │ ○ │Omni mono │
│cc:$7F │off │ ○ │ │ ○ │ ○ │ ○ │Omni poly │
└────┴──┴──┴──┴──┴──┴──┴──────────┘
※ 表中にないコントロールチェンジはすべてオプティマイズ無効